Errors may occur when an input data signal is sampled during the setup time or hold time of the input data signal. This problem may be even more prevalent when the timing of an input data signal, and/or the sample timing of the input data signal, varies over time. Various methods have been created to avoid such errors.